package cn.fz.singleton;

/**
 * 4. 静态内部类（Initialization-on-demand Holder Idiom）
 * 利用Java的类加载机制，静态内部类的方式实现单例模式既能保证线程安全，又能实现延迟加载。
 * 优点：
 * 线程安全且支持延迟加载，性能表现好，推荐使用。
 */
public class StaticInnerClassSingleton implements ISingletonMethod{
    // 私有构造方法
    private StaticInnerClassSingleton() {}

    // 静态内部类，持有单例实例
    private static class Holder{
        private static final StaticInnerClassSingleton INSTANCE = new StaticInnerClassSingleton();
    }

    // 提供全局访问方法
    public static StaticInnerClassSingleton getInstance() {
        return Holder.INSTANCE;
    }

    @Override
    public void show() {
        System.out.println("静态内部类: StaticInnerClassSingleton");
    }
}
